<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>QSculpt: ICommand Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">QSculpt
   &#160;<span id="projectnumber">0.0.1a</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-slots">Public Slots</a> &#124;
<a href="#signals">Signals</a> &#124;
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">ICommand Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="ICommand" -->
<p><code>#include &lt;<a class="el" href="_i_command_8h_source.html">ICommand.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ICommand:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_i_command.png" usemap="#ICommand_map" alt=""/>
  <map id="ICommand_map" name="ICommand_map">
<area href="class_command_base.html" alt="CommandBase" shape="rect" coords="0,56,168,80"/>
<area href="class_add_face_command.html" alt="AddFaceCommand" shape="rect" coords="178,112,346,136"/>
<area href="class_add_group_command.html" alt="AddGroupCommand" shape="rect" coords="178,168,346,192"/>
<area href="class_add_point_command.html" alt="AddPointCommand" shape="rect" coords="178,224,346,248"/>
<area href="class_add_surface_command.html" alt="AddSurfaceCommand" shape="rect" coords="178,280,346,304"/>
<area href="class_brush_command.html" alt="BrushCommand" shape="rect" coords="178,336,346,360"/>
<area href="class_edit_subdivide_command.html" alt="EditSubdivideCommand" shape="rect" coords="178,392,346,416"/>
<area href="class_orbit_command.html" alt="OrbitCommand" shape="rect" coords="178,448,346,472"/>
<area href="class_remove_surface_command.html" alt="RemoveSurfaceCommand" shape="rect" coords="178,504,346,528"/>
<area href="class_select_command.html" alt="SelectCommand" shape="rect" coords="178,560,346,584"/>
<area href="class_smooth_surface_command.html" alt="SmoothSurfaceCommand" shape="rect" coords="178,616,346,640"/>
<area href="class_subdivide_command.html" alt="SubdivideCommand" shape="rect" coords="178,672,346,696"/>
<area href="class_test_command.html" alt="TestCommand" shape="rect" coords="178,728,346,752"/>
<area href="class_transform_camera_command.html" alt="TransformCameraCommand" shape="rect" coords="178,784,346,808"/>
<area href="class_transform_command.html" alt="TransformCommand" shape="rect" coords="178,840,346,864"/>
</map>
 </div></div>

<p><a href="class_i_command-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-slots"></a>
Public Slots</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_command.html#ace81beb0beea968f876f292446bf1120">execute</a> ()=0</td></tr>
<tr><td colspan="2"><h2><a name="signals"></a>
Signals</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_command.html#a7fb5e4599a22ba2cf03c4ab04ab8050a">executed</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_command.html#a67bbcac6a31b2977cc6586ae6e7f1bf4">ICommand</a> (<a class="el" href="class_i_command.html">ICommand</a> *parent=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afae54545df81f46aebe611a7a9d8f192"></a><!-- doxytag: member="ICommand::ICommand" ref="afae54545df81f46aebe611a7a9d8f192" args="(const QString &amp;text, ICommand *parent=0)" -->
&#160;</td><td class="memItemRight" valign="bottom"><b>ICommand</b> (const QString &amp;text, <a class="el" href="class_i_command.html">ICommand</a> *parent=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1971ed1b93a66fb71ceed07c4834cd15"></a><!-- doxytag: member="ICommand::ICommand" ref="a1971ed1b93a66fb71ceed07c4834cd15" args="(const ICommand &amp;cpy)" -->
&#160;</td><td class="memItemRight" valign="bottom"><b>ICommand</b> (const <a class="el" href="class_i_command.html">ICommand</a> &amp;cpy)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_command.html#a0e0226af93b945e84b58405e9d5343b1">~ICommand</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_i_command.html">ICommand</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_command.html#afde1282c74d8117bab3b3f4570e96d0a">clone</a> () const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_command.html#a811ae6af4f66f1f29b8bb18159a6c51f">needsUserInteraction</a> () const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual QWidget *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_command.html#ab026706ccf51db06785f61c489b564d1">getOptionsWidget</a> ()=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_command.html#a7306f8b9bd99f77a80990f2618a1a80d">activate</a> (bool active)=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_command.html#aadb432aafaef4aa811a2600afdf23b6b">isActive</a> ()=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_i_config_container.html">IConfigContainer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_command.html#a664413cea0467d547246b111b4d1a67d">getConfig</a> () const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf2fad8f8b3779557ec2a06fc7466c12"></a><!-- doxytag: member="ICommand::config" ref="abf2fad8f8b3779557ec2a06fc7466c12" args="() const " -->
<a class="el" href="class_i_config_container.html">IConfigContainer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>config</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_command.html#a3006d5cf293fea0e388896c216625124">mousePressEvent</a> (QMouseEvent *e)=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_command.html#a6da08f49baa491fc6e52207238a2ade4">mouseReleaseEvent</a> (QMouseEvent *e)=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_command.html#a54ee22a7f387d935cd82de968dd71e7a">mouseMoveEvent</a> (QMouseEvent *e)=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_command.html#acf5fd8b114dc2dff347e422352fdf89d">paintGL</a> (<a class="el" href="class_gl_canvas.html">GlCanvas</a> *c)=0</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Command interface. Every application command should implement this interface.</p>
<p>The command can have several configuration parameters.</p>
<dl class="author"><dt><b>Author:</b></dt><dd>Juan Roberto Cabral Flores &lt;<a href="mailto:roberto.cabral@gmail.com">roberto.cabral@gmail.com</a>&gt; </dd></dl>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a67bbcac6a31b2977cc6586ae6e7f1bf4"></a><!-- doxytag: member="ICommand::ICommand" ref="a67bbcac6a31b2977cc6586ae6e7f1bf4" args="(ICommand *parent=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ICommand::ICommand </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_i_command.html">ICommand</a> *&#160;</td>
          <td class="paramname"><em>parent</em> = <code>0</code></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Default contructor. </p>

</div>
</div>
<a class="anchor" id="a0e0226af93b945e84b58405e9d5343b1"></a><!-- doxytag: member="ICommand::~ICommand" ref="a0e0226af93b945e84b58405e9d5343b1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual ICommand::~ICommand </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Default destructor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a7306f8b9bd99f77a80990f2618a1a80d"></a><!-- doxytag: member="ICommand::activate" ref="a7306f8b9bd99f77a80990f2618a1a80d" args="(bool active)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ICommand::activate </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>active</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the command as the active one. This is called with the parameter in true to indicate that the command is active and should be prepared to accept the input from the user (like mouse events, etc).</p>
<p>To set the command as a non active, then pass false in the active parameter.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">active</td><td>True, the command is active. False, the command is no longer active. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="class_transform_command.html#a1babbad5f30c68ae4af1051e284a568c">TransformCommand</a>, <a class="el" href="class_command_base.html#a6d230988220beee567f8c63f704fd587">CommandBase</a>, <a class="el" href="class_brush_command.html#a060740729ca207ee0a727a9f4d4f2e1c">BrushCommand</a>, and <a class="el" href="class_transform_camera_command.html#ae0fe3fee4881f3f37e048c7f7871568e">TransformCameraCommand</a>.</p>

</div>
</div>
<a class="anchor" id="afde1282c74d8117bab3b3f4570e96d0a"></a><!-- doxytag: member="ICommand::clone" ref="afde1282c74d8117bab3b3f4570e96d0a" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_i_command.html">ICommand</a>* ICommand::clone </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Creates a new instance of the command. The new command instance should have, at least, the same configuration parameters as the original one. </p>

<p>Implemented in <a class="el" href="class_test_command.html#a04385cc2119836320558dde0b872f6bf">TestCommand</a>, <a class="el" href="class_transform_command.html#a1003202c9a4d12e506004b513d154400">TransformCommand</a>, <a class="el" href="class_smooth_surface_command.html#a8ee27a12ca93874c9d1323c5e4f757f4">SmoothSurfaceCommand</a>, <a class="el" href="class_edit_subdivide_command.html#af1d2ff2bc937511404ca28bad1258c58">EditSubdivideCommand</a>, <a class="el" href="class_add_group_command.html#ad5469ba8ce0746cbd4b93d647c030074">AddGroupCommand</a>, <a class="el" href="class_select_command.html#af3f83dc7766ffda8ad7dc06c9ee3561f">SelectCommand</a>, <a class="el" href="class_orbit_command.html#a910840622af09d484161e7a38ecef466">OrbitCommand</a>, <a class="el" href="class_brush_command.html#a9d76040c34474604ebea0bcf50024ebc">BrushCommand</a>, <a class="el" href="class_subdivide_command.html#a5caef4309e3d118bb00b073b48ccd890">SubdivideCommand</a>, <a class="el" href="class_remove_surface_command.html#a3ddf6bac0e4d6539f4e502cbd8b1798b">RemoveSurfaceCommand</a>, <a class="el" href="class_transform_camera_command.html#a750df478b6c26e4c990f0f93992baa6b">TransformCameraCommand</a>, and <a class="el" href="class_add_surface_command.html#a7bcfb531a2e27faf4a0d7488f23d7dd8">AddSurfaceCommand</a>.</p>

</div>
</div>
<a class="anchor" id="ace81beb0beea968f876f292446bf1120"></a><!-- doxytag: member="ICommand::execute" ref="ace81beb0beea968f876f292446bf1120" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ICommand::execute </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [pure virtual, slot]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Execute the command in no interactive way. This means, that once that all the parameters of the command are set, the command will be executed without user intervention. </p>

<p>Implemented in <a class="el" href="class_test_command.html#a4405c511268e83fadeccf795d061bfae">TestCommand</a>, <a class="el" href="class_transform_command.html#a8f8b1bd59c2504f6045462e2a429b1c0">TransformCommand</a>, <a class="el" href="class_smooth_surface_command.html#a5b0e2f600a827ed8b5da725889ae1962">SmoothSurfaceCommand</a>, <a class="el" href="class_edit_subdivide_command.html#a7bd37e3d4fd383f9c99020e62b6761ec">EditSubdivideCommand</a>, <a class="el" href="class_add_group_command.html#aed148132c820b917e2ee54a3b0bececd">AddGroupCommand</a>, <a class="el" href="class_command_base.html#a91c1e18902c4f835b6b43777fdc87353">CommandBase</a>, <a class="el" href="class_select_command.html#a988e16cc34d68f56494f614bedc2cbab">SelectCommand</a>, <a class="el" href="class_subdivide_command.html#a38766d0eefcd6fbf6992591b92baadcb">SubdivideCommand</a>, <a class="el" href="class_remove_surface_command.html#a1f7737d86ca3d8cd2a46e64531e0252a">RemoveSurfaceCommand</a>, <a class="el" href="class_transform_camera_command.html#a5fed035ad999b65c2e259fa3c41d2137">TransformCameraCommand</a>, and <a class="el" href="class_add_surface_command.html#a93991ad4a57481e583f24ac2f8883b46">AddSurfaceCommand</a>.</p>

</div>
</div>
<a class="anchor" id="a7fb5e4599a22ba2cf03c4ab04ab8050a"></a><!-- doxytag: member="ICommand::executed" ref="a7fb5e4599a22ba2cf03c4ab04ab8050a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ICommand::executed </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [signal]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Serves as a way to indicate when the command has finished its execution. This signal should be sent at the end of the undo() method implementation. </p>

</div>
</div>
<a class="anchor" id="a664413cea0467d547246b111b4d1a67d"></a><!-- doxytag: member="ICommand::getConfig" ref="a664413cea0467d547246b111b4d1a67d" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_i_config_container.html">IConfigContainer</a>&amp; ICommand::getConfig </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns a reference to the container of config paramters for the command</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>referece to an <a class="el" href="class_i_config_container.html">IConfigContainer</a> class </dd></dl>

<p>Implemented in <a class="el" href="class_command_base.html#a2a1914bcde859b19b2215059a79c777a">CommandBase</a>.</p>

</div>
</div>
<a class="anchor" id="ab026706ccf51db06785f61c489b564d1"></a><!-- doxytag: member="ICommand::getOptionsWidget" ref="ab026706ccf51db06785f61c489b564d1" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual QWidget* ICommand::getOptionsWidget </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This method returns the options or configuration widget of the command. The widget returned should contain all the controls necesary to allow the user to change configuration parameters of the command. </p>

<p>Implemented in <a class="el" href="class_test_command.html#a2cb626859a6cc4ce18888ae9ab0021c3">TestCommand</a>, <a class="el" href="class_transform_command.html#a7f5db674d21bb10a07c8d5dc7ad15984">TransformCommand</a>, <a class="el" href="class_smooth_surface_command.html#ac7d1b11f6023409d75c4673436aa7609">SmoothSurfaceCommand</a>, <a class="el" href="class_edit_subdivide_command.html#adb1eefb4476f27e293fae30b84874f1b">EditSubdivideCommand</a>, <a class="el" href="class_add_group_command.html#a536c924bc6c2ce8906b36ba6e2c81fb1">AddGroupCommand</a>, <a class="el" href="class_select_command.html#a8f67a1ee7f965f2cbf3c02bcf36e7327">SelectCommand</a>, <a class="el" href="class_brush_command.html#ad912acc23d5be6613c48d5e9bdb100d8">BrushCommand</a>, <a class="el" href="class_orbit_command.html#a23a4050829cadde6dc20665b97d378c1">OrbitCommand</a>, <a class="el" href="class_subdivide_command.html#ad9a20c5009204d7658541c6d680bb3e9">SubdivideCommand</a>, <a class="el" href="class_transform_camera_command.html#a0193342bbefae4f39c75f4b4b172313a">TransformCameraCommand</a>, <a class="el" href="class_remove_surface_command.html#aa2b3caea88488d3305499bef5ad31230">RemoveSurfaceCommand</a>, and <a class="el" href="class_add_surface_command.html#a8e163d2d74aaa4d9aac422678bad5f87">AddSurfaceCommand</a>.</p>

</div>
</div>
<a class="anchor" id="aadb432aafaef4aa811a2600afdf23b6b"></a><!-- doxytag: member="ICommand::isActive" ref="aadb432aafaef4aa811a2600afdf23b6b" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool ICommand::isActive </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Indicate if the command is active or incactive. An active command is a command that is in execution. </p>

<p>Implemented in <a class="el" href="class_command_base.html#ad5e17eb267558c4995a587c24bdf991b">CommandBase</a>.</p>

</div>
</div>
<a class="anchor" id="a54ee22a7f387d935cd82de968dd71e7a"></a><!-- doxytag: member="ICommand::mouseMoveEvent" ref="a54ee22a7f387d935cd82de968dd71e7a" args="(QMouseEvent *e)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ICommand::mouseMoveEvent </td>
          <td>(</td>
          <td class="paramtype">QMouseEvent *&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Called when a mouse move event ocurrs. This method is called by the widget (a QGLWidget). </p>

<p>Implemented in <a class="el" href="class_test_command.html#aad2be6957fdb7a7848610d2bef8d8493">TestCommand</a>, <a class="el" href="class_transform_command.html#a75dc2ac3a35048e1cd6498033c3b1ca5">TransformCommand</a>, <a class="el" href="class_edit_subdivide_command.html#af72bced411928b07c6596aa2eb1a60ce">EditSubdivideCommand</a>, <a class="el" href="class_orbit_command.html#aafdc20d87346eb36cb24a5f2e4e378fa">OrbitCommand</a>, <a class="el" href="class_command_base.html#a7e24718e3ccb53e6c965def4f4c92bbb">CommandBase</a>, <a class="el" href="class_select_command.html#abf3bb5c35f0b24d3a6772f8270dbb943">SelectCommand</a>, <a class="el" href="class_brush_command.html#a32044ab5f96832528377e130654ada2b">BrushCommand</a>, and <a class="el" href="class_transform_camera_command.html#aa5b77a1f6cad706489c998fb8e31ac12">TransformCameraCommand</a>.</p>

</div>
</div>
<a class="anchor" id="a3006d5cf293fea0e388896c216625124"></a><!-- doxytag: member="ICommand::mousePressEvent" ref="a3006d5cf293fea0e388896c216625124" args="(QMouseEvent *e)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ICommand::mousePressEvent </td>
          <td>(</td>
          <td class="paramtype">QMouseEvent *&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Called when a mouse press event ocurrs. This method is called by the widget (a QGLWidget). </p>

<p>Implemented in <a class="el" href="class_test_command.html#ad0af23f7df7f34341907daa89e14939a">TestCommand</a>, <a class="el" href="class_transform_command.html#a809b62a6563b53af2c4a201080be0525">TransformCommand</a>, <a class="el" href="class_edit_subdivide_command.html#a4bad2ddf4f4c2faee649f4db82736c41">EditSubdivideCommand</a>, <a class="el" href="class_command_base.html#afb621f4aa1c509230093b761cb367889">CommandBase</a>, <a class="el" href="class_orbit_command.html#af23cc6be926cde82f09a00d8bb9de21d">OrbitCommand</a>, <a class="el" href="class_select_command.html#aa9973e309b0b1a4ea2e3b72dc7fa2408">SelectCommand</a>, <a class="el" href="class_brush_command.html#a08b0e3e92c6824d5a89c021d930e8f2e">BrushCommand</a>, and <a class="el" href="class_transform_camera_command.html#ab65106920a48a69becd7567dbcef0e27">TransformCameraCommand</a>.</p>

</div>
</div>
<a class="anchor" id="a6da08f49baa491fc6e52207238a2ade4"></a><!-- doxytag: member="ICommand::mouseReleaseEvent" ref="a6da08f49baa491fc6e52207238a2ade4" args="(QMouseEvent *e)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ICommand::mouseReleaseEvent </td>
          <td>(</td>
          <td class="paramtype">QMouseEvent *&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Called when a mouse release event ocurrs. This method is called by the widget (a QGLWidget). </p>

<p>Implemented in <a class="el" href="class_test_command.html#a42ba7e4ebc71c1c51ffe49c4d6d7b25b">TestCommand</a>, <a class="el" href="class_transform_command.html#ab7bee235152d0221294562121f7c9c22">TransformCommand</a>, <a class="el" href="class_edit_subdivide_command.html#a0b5dde37795151e3643d51eccf5fea94">EditSubdivideCommand</a>, <a class="el" href="class_orbit_command.html#a4683100c01ff7d5a3a40f753ae971396">OrbitCommand</a>, <a class="el" href="class_command_base.html#abb2bbbc05a3c3eaf6b9e0c655883a9b3">CommandBase</a>, <a class="el" href="class_select_command.html#a21827f61c06accfbd9fb41588c53fe99">SelectCommand</a>, <a class="el" href="class_brush_command.html#a9578ec13e66773e11736008c1c2e946e">BrushCommand</a>, and <a class="el" href="class_transform_camera_command.html#a6a5e5f7d6877c6397d5166a44b445c8a">TransformCameraCommand</a>.</p>

</div>
</div>
<a class="anchor" id="a811ae6af4f66f1f29b8bb18159a6c51f"></a><!-- doxytag: member="ICommand::needsUserInteraction" ref="a811ae6af4f66f1f29b8bb18159a6c51f" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool ICommand::needsUserInteraction </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>States if the command needs the user interaction for its execution.</p>
<p>This should return TRUE if the command depends on user input like mouse movement. This function should return false if the command does not require user intervention (its action is done immediatly). </p>

<p>Implemented in <a class="el" href="class_test_command.html#a767268a5134fd36df5b797a0623251c6">TestCommand</a>, <a class="el" href="class_smooth_surface_command.html#a1d8337cf884a7c4b37fb5cceb247fb9d">SmoothSurfaceCommand</a>, <a class="el" href="class_edit_subdivide_command.html#a5c5fdba3b68a80d3ada311eeeace69ee">EditSubdivideCommand</a>, <a class="el" href="class_add_group_command.html#aaaf39e77bf8be30cfa6fe7b9d4487071">AddGroupCommand</a>, <a class="el" href="class_command_base.html#af08072be260df3198d4d48bf572113e2">CommandBase</a>, <a class="el" href="class_subdivide_command.html#a6392ce0ea0ace99cd27178f82f4fa8a0">SubdivideCommand</a>, <a class="el" href="class_remove_surface_command.html#a80935ab362fca2ffd7666342f992d986">RemoveSurfaceCommand</a>, and <a class="el" href="class_add_surface_command.html#a6bbe1452bb8a0605f18be9ae254c13d9">AddSurfaceCommand</a>.</p>

</div>
</div>
<a class="anchor" id="acf5fd8b114dc2dff347e422352fdf89d"></a><!-- doxytag: member="ICommand::paintGL" ref="acf5fd8b114dc2dff347e422352fdf89d" args="(GlCanvas *c)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ICommand::paintGL </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_gl_canvas.html">GlCanvas</a> *&#160;</td>
          <td class="paramname"><em>c</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Used to display anything specific to the command as user feedback. </p>

<p>Implemented in <a class="el" href="class_test_command.html#a2ce2c4d525a5cdedf97e456abea63ec9">TestCommand</a>, <a class="el" href="class_transform_command.html#a8f4a10f9bc3fe48ab8ef4f104dc212c8">TransformCommand</a>, <a class="el" href="class_edit_subdivide_command.html#a7aed4d7f0cbe1b55653379420260ef57">EditSubdivideCommand</a>, <a class="el" href="class_orbit_command.html#afcec099b373a60406fe93b2b392c1572">OrbitCommand</a>, <a class="el" href="class_command_base.html#a26189259f723383fc5784d4187a69e09">CommandBase</a>, <a class="el" href="class_select_command.html#a849b100c020aab67ed82633177a8f1df">SelectCommand</a>, and <a class="el" href="class_transform_camera_command.html#aa4e65c82dc3bd7b45bbe4691acfcbb48">TransformCameraCommand</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>qsculpt/include/command/<a class="el" href="_i_command_8h_source.html">ICommand.h</a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generated on Thu May 31 2012 16:19:52 for QSculpt by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.5.1
</small></address>

</body>
</html>
